\section{Related Work}
\label{sec:sota}

The core data model of MSR4J is inspired by the work of~\cite{maclean13}
whose model was intended for studying the social network among ASF committers.
That model features 3 types of node: \textit{Author, File} and \textit{Revision}.
It has 7 types of relationship: \textit{Author to Author} (co-commit relationship),
\textit{Author on Revision}, \textit{Author touches File}, action types 
\textit{Add, Delete, Modify} and \textit{Replace} (between \textit{Revision} and \textit{File}). 
We retained these nodes and relationships and their core properties.
Indeed, we believe some properties in~\cite{maclean13} can be computed on demand
as annotated queries (e.g. \textit{commit-count, number-of-files-touched}).
Although the calculation of some properties might prove CPU and/or memory intensive, 
the ability to have actual values whenever data are updated is preferable.

An interesting aspect of the work in~\cite{maclean13} is the software library
(in Java) the authors have developed to connect to the graphs built out of their research.
The dataset is stored in Neo4J graph database~\cite{robinson2013graph},
ranging over a two-year period (2010 to 2011), distributed in overlapping chunks
of three-month periods. Although the library can be extended, it is already highly 
coupled with to the Neo4J back end and traversal APIs.

The second source of inspiration for MSR4J data model is the schema of 
CVSAnaly2~\cite{cvsanaly09}, which has been widely used
for gathering FLOSS metrics~\cite{robles2011:floss_datamining}.
We basically merged the most important concepts and their relationships
from this schema into the core data model of MSR4J: repositories,
file types, new types of actions, messages in revisions and tags.
We left out anything related to software metrics, as these can now be fully
automatically computed by SonarQube\footnote{\url{http://www.sonarqube.org/}}.

An interesting feature of CVSAnaly2 is the ability to handle the 3 widely spread
types of SCM, namely CVS, SVN and Git. In this first iteration of MSR4J
we only support SVN using the Open Source SVNKit library, but other types of SCM could
be handled using the appropriate libraries, for instance JGit for Git.

The third source used for building MSR4J data model is the Apache Roles
data model from~\cite{squire13}. This study focusses on the roles hold 
by ASF committers and members across ASF projects. The collected data 
mainly originate from listings freely available on the ASF website: 
committers by id, committers by name, individual projects team listings,
ASF members list and boards meeting minutes. The dataset was donated
to FLOSSMole and is now available online\footnote{\url{http://flossmole.org/content/two-new-data-sets}}.


